---
title: SAIF.Business.Policy database tables
summary: Database tables used by this library with relationships and usage context.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-08-21
library: SAIF.Business.Policy
reference_type: package
---

# SAIF.Business.Policy database tables

This page catalogs database tables accessed by this library. All access is read-only; the library issues no `INSERT`, `UPDATE`, `DELETE`, or sequence (`.NEXTVAL`) statements from .NET code.

## Table catalog

| Table | Database | Schema/Link | CRUD | Purpose | Primary business object |
| --- | --- | --- | --- | --- | --- |
| [BENEFIT_JURISDICTION_CODE](#benefit_jurisdiction_code) | Oracle | `[unqualified]**` | R | Code-table source for benefit jurisdiction lookups | `clsBenefitJurisdictionCodeMap` |
| [DUAL](#dual) | Oracle | N/A — Oracle system pseudo-table | R | Vehicle for invoking the `pk73102_policy.does_wcis_own_submission` function | `PolicyInformation` |
| [ENDORSEMENT](#endorsement) | Oracle | `[unqualified]**` | R | Determine whether a policy period's information page was printed | `PolicyInformation` |
| [HAZARD_GROUP](#hazard_group) | Oracle | `[unqualified]**` | R | Source of hazard-group reference data | `clsHazardGroupCollection`, `clsHazardGroup` |
| [MANUAL_CLASS_TYPE_CODE](#manual_class_type_code) | Oracle | `[unqualified]**` | R | Code-table source for manual class type lookups | `clsManualClassTypeCodeMap` |
| [POLICY](#policy) | Oracle | `[unqualified]**` | R | Source of policy market-type code | `PolicyInformation` |
| [POLICY_PERIOD](#policy_period) | Oracle | `[unqualified]**` | R | Source of policy period effective/expiration/anniversary dates (WCIS) | `PolicyInformation` |
| [POLICY_PERIOD_NON_WCIS](#policy_period_non_wcis) | Oracle | `[unqualified]**` | R | Source of policy period expiration/anniversary dates (non-WCIS) | `PolicyInformation` |
| [PREM_HIST_SUMMARY](#prem_hist_summary) | Oracle | `[unqualified]**` | R | Source of the current premium-history set id | `PolicyInformation` |

## BENEFIT_JURISDICTION_CODE

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]**` — no `OWNER.` prefix or DB link in the SQL text |
| **Purpose** | Reference code table for jurisdictions; mapped to the `BenefitJurisdictions` enum |
| **Access pattern** | Direct SQL (`clsCodeTableBase.Fill`) |
| **CRUD operations** | Read |
| **Key columns used** | `CODE`, `CODE_DESCR` |
| **Sequence** | N/A |
| **Related tables** | None discovered |
| **Business objects** | `clsBenefitJurisdictionCodeMap` |

### Business rules referencing this table
- [BR-POL-012: Benefit jurisdiction code recognition](business-rules.md#br-pol-012-benefit-jurisdiction-code-recognition)

### SQL referencing this table
- [SQL-001: Benefit jurisdiction code lookup](sql/SQL-001-benefit-jurisdiction-code-lookup.md)

---

## DUAL

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | N/A — Oracle system pseudo-table |
| **Purpose** | Used to invoke the Oracle package function `pk73102_policy.does_wcis_own_submission` as a scalar `SELECT` |
| **Access pattern** | Direct SQL (function call via `SELECT ... FROM DUAL`) |
| **CRUD operations** | Read (function call) |
| **Key columns used** | N/A |
| **Sequence** | N/A |
| **Related tables** | None discovered |
| **Business objects** | `PolicyInformation` |

### Business rules referencing this table
- [BR-POL-005: Policy ownership determination](business-rules.md#br-pol-005-policy-ownership-determination)

### SQL referencing this table
- [SQL-005: Get policy ownership system](sql/SQL-005-get-policy-ownership-system.md)

---

## ENDORSEMENT

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]**` |
| **Purpose** | Source of endorsement rows used to determine whether a policy period's information page (`P401`) has been printed |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | `POLICY_NUM`, `POLICY_PERIOD_EFF_DATE`, `ENDORSE_CODE`, `PRINTED_DATE` |
| **Sequence** | N/A |
| **Related tables** | `POLICY_PERIOD` (inferred, composite key naming convention)* |
| **Business objects** | `PolicyInformation` |

### Business rules referencing this table
- [BR-POL-006: Information page printed status](business-rules.md#br-pol-006-information-page-printed-status)

### SQL referencing this table
- [SQL-006: Is information page printed](sql/SQL-006-is-information-page-printed.md)

---

## HAZARD_GROUP

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]**` |
| **Purpose** | Source of hazard-group reference data retrieved as read-only BOF business objects |
| **Access pattern** | Direct SQL, via BOF business-object data portal |
| **CRUD operations** | Read |
| **Key columns used** | `HAZARD_GROUP_ID`, `HAZARD_GROUP_SHORT_DESCR`, `HAZARD_GROUP_LONG_DESCR`, `EFFECTIVE_DATE`, `EXPIRATION_DATE`, `CREATE_DATE`, `CREATE_USER`, `UPDATE_DATE`, `UPDATE_USER`, `NCCI_HAZARD_GROUP_CODE` |
| **Sequence** | N/A |
| **Related tables** | None discovered |
| **Business objects** | `clsHazardGroup`, `clsHazardGroupCollection` |

### Operations referencing this table
- OP-01 Retrieve hazard groups effective on a date (see [Operations and processes](operations-processes.md))
- OP-02 Hydrate a hazard group from a reader (see [Operations and processes](operations-processes.md))

### Business rules referencing this table
- [BR-POL-001: Hazard group effective-dating](business-rules.md#br-pol-001-hazard-group-effective-dating)
- [BR-POL-002: Hazard group data is read-only](business-rules.md#br-pol-002-hazard-group-data-is-read-only)

### SQL referencing this table
- [SQL-002: Hazard group retrieve](sql/SQL-002-hazard-group-retrieve.md)

---

## MANUAL_CLASS_TYPE_CODE

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]**` |
| **Purpose** | Reference code table for manual class types; mapped to the `ManualClassTypes` enum |
| **Access pattern** | Direct SQL (`clsCodeTableBase.Fill`) |
| **CRUD operations** | Read |
| **Key columns used** | `CODE`, `CODE_DESCR` |
| **Sequence** | N/A |
| **Related tables** | None discovered |
| **Business objects** | `clsManualClassTypeCodeMap` |

### Business rules referencing this table
- [BR-POL-013: Manual class type code recognition](business-rules.md#br-pol-013-manual-class-type-code-recognition)

### SQL referencing this table
- [SQL-003: Manual class type code lookup](sql/SQL-003-manual-class-type-code-lookup.md)

---

## POLICY

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]**` |
| **Purpose** | Source of the policy's market-type code |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | `POLICY_NUM`, `MARKET_TYPE_CODE` |
| **Sequence** | N/A |
| **Related tables** | `POLICY_PERIOD` (inferred, shared `POLICY_NUM` key; no explicit JOIN)* |
| **Business objects** | `PolicyInformation` |

### Business rules referencing this table
- [BR-POL-004: Market type code classification](business-rules.md#br-pol-004-market-type-code-classification)

### SQL referencing this table
- [SQL-004: Get market type](sql/SQL-004-get-market-type.md)

---

## POLICY_PERIOD

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]**` |
| **Purpose** | Source of a policy's period effective date, expiration date, and anniversary rate date |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | `POLICY_NUM`, `POLICY_PERIOD_EFF_DATE`, `POLICY_PERIOD_EXP_DATE`, `ANNIVERSARY_RATE_DATE` |
| **Sequence** | N/A |
| **Related tables** | `POLICY` (inferred)*, `POLICY_PERIOD_NON_WCIS` (parallel/alternate-source partition, inferred)*, `ENDORSEMENT` (inferred)*, `PREM_HIST_SUMMARY` (inferred)* |
| **Business objects** | `PolicyInformation` |

### Business rules referencing this table
- [BR-POL-009: Policy effective date derivation](business-rules.md#br-pol-009-policy-effective-date-derivation)
- [BR-POL-010: Dual-source period date resolution](business-rules.md#br-pol-010-dual-source-period-date-resolution)

### SQL referencing this table
- [SQL-008: Policy effective date](sql/SQL-008-policy-effective-date.md)
- [SQL-009: Policy period anniversary rate date](sql/SQL-009-policy-period-anniversary-rate-date.md)
- [SQL-010: Policy period expiration date](sql/SQL-010-policy-period-expiration-date.md)

---

## POLICY_PERIOD_NON_WCIS

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]**` |
| **Purpose** | Alternate (non-WCIS) source of policy period expiration date and anniversary rate date, unioned with `POLICY_PERIOD` |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | `POLICY_NUM`, `POLICY_PERIOD_EFF_DATE`, `POLICY_PERIOD_EXP_DATE`, `ANNIVERSARY_RATE_DATE` |
| **Sequence** | N/A |
| **Related tables** | `POLICY_PERIOD` (parallel/alternate-source partition, inferred)* |
| **Business objects** | `PolicyInformation` |

### Business rules referencing this table
- [BR-POL-010: Dual-source period date resolution](business-rules.md#br-pol-010-dual-source-period-date-resolution)

### SQL referencing this table
- [SQL-009: Policy period anniversary rate date](sql/SQL-009-policy-period-anniversary-rate-date.md)
- [SQL-010: Policy period expiration date](sql/SQL-010-policy-period-expiration-date.md)

---

## PREM_HIST_SUMMARY

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]**` |
| **Purpose** | Source of premium-history summary rows used to determine the current premium-history set id |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | `PREM_HIST_SET_ID`, `POLICY_NUM`, `POLICY_PERIOD_EFF_DATE`, `PREM_HIST_TYPE_CODE` |
| **Sequence** | N/A |
| **Related tables** | `POLICY_PERIOD` (inferred, composite key naming convention)* |
| **Business objects** | `PolicyInformation` |

### Business rules referencing this table
- [BR-POL-007: Current premium history set selection](business-rules.md#br-pol-007-current-premium-history-set-selection)

### SQL referencing this table
- [SQL-007: Max prem hist set id](sql/SQL-007-max-prem-hist-set-id.md)

---

## Table relationship diagram

The following diagram shows relationships between tables used by this library, inferred from shared key columns and `UNION` structure (no explicit `JOIN` clauses exist in this library's SQL, apart from a correlated self-reference).

```mermaid
erDiagram
    POLICY ||--o{ POLICY_PERIOD : "POLICY_NUM (inferred)"
    POLICY_PERIOD ||--|| POLICY_PERIOD_NON_WCIS : "POLICY_NUM, POLICY_PERIOD_EFF_DATE (parallel source)"
    POLICY_PERIOD ||--o{ ENDORSEMENT : "POLICY_NUM, POLICY_PERIOD_EFF_DATE (inferred)"
    POLICY_PERIOD ||--o{ PREM_HIST_SUMMARY : "POLICY_NUM, POLICY_PERIOD_EFF_DATE (inferred)"
    POLICY_PERIOD {
        NUMBER POLICY_NUM
        DATE POLICY_PERIOD_EFF_DATE
        DATE POLICY_PERIOD_EXP_DATE
        DATE ANNIVERSARY_RATE_DATE
    }
    POLICY {
        NUMBER POLICY_NUM
        VARCHAR2 MARKET_TYPE_CODE
    }
```

`HAZARD_GROUP`, `MANUAL_CLASS_TYPE_CODE`, and `BENEFIT_JURISDICTION_CODE` are standalone reference/code tables with no discoverable relationships in this library's SQL.

> **Note:** Statements marked with * were inferred from code structure, naming conventions, or
> contextual evidence where direct confirmation was not available in source artifacts. Statements
> marked with ** could not be confirmed; treat as unknown until verified.

## Related documentation
- [Index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Dependencies](dependencies.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [SQL catalog](sql/index.md)
- [Procedures](procedures/index.md)
- [API reference](api/index.md)

## Sources
- `SAIF.Business.Policy/PolicyInformation.vb`
- `SAIF.Business.Policy/clsHazardGroup.vb`
- `SAIF.Business.Policy/clsHazardGroupCollection.vb`
- `SAIF.Business.Policy/CodeMaps/clsBenefitJurisdictionCodeMap.vb`
- `SAIF.Business.Policy/CodeMaps/clsManualClassTypeCodeMap.vb`
